/*
 * Created on 03.12.2003
 */
package de.javakicker;

import java.awt.Point;

/**
 * The Interface ActionSource.
 *
 * @author Till Krullmann
 */
public interface ActionSource
{
	
	/**
	 * The Interface Action.
	 */
	public interface Action
	{
		
		/**
		 * Gets the actor id.
		 *
		 * @return the actor id
		 */
		String getActorId();
		
		/**
		 * Gets the soccer action.
		 *
		 * @return the soccer action
		 */
		SoccerAction getSoccerAction();
	}
	
	/**
	 * The Interface Reset.
	 */
	public interface Reset
	{
		
		/**
		 * Gets the actor ids.
		 *
		 * @return the actor ids as String-Array
		 */
		String[] getActorIds();
		
		/**
		 * Gets the position.
		 *
		 * @param actorId the actor id
		 * @return the position as point
		 */
		Point getPosition(String actorId);
		
		/**
		 * Gets the team index of an actor.
		 *
		 * @param actorId the actor id
		 * @return the team index of provided actor
		 */
		int getTeamIndex(String actorId);
	}
	
	/** The Constant NEXT_MINUTE. */
	public static final Object NEXT_MINUTE = new Object() { };
	
	/**
	 * Gets the team names.
	 *
	 * @return the team names as string array
	 */
	String[] getTeamNames();
	
	/**
	 * Next action.
	 *	Liefert entweder eine Action oder ein Reset
	 * @return an action object
	 */
	Object nextAction();	
	
	/**
	 * Peek action.
	 *
	 * @return an action object
	 */
	Object peekAction();
}
